package com.lanou3g.code0409.common;


import java.util.Scanner;
import java.util.stream.Stream;

public class PasswordTest {
    public static void main(String[] args) {
        System.out.println("请输入密码");
        Scanner scanner = new Scanner(System.in);
        String password = scanner.nextLine();//password 密码
        // 接收用户输入的一行信息,类型是String
        // 没有Line也是接收一行信息,没Line,是接收到空格为止,有Line接收一整行

        //判断长度
        if (password.length() < 8) {
            System.out.println("密码长度不够8位");
            return;
        }

        //判断数字 1和"1"是不一样的
        boolean hasNum = false;
        for (int i = 0; i < 10; i++) {
            //String.valueOf(基本数据类型)
            // 可以把任意的 基本数据类型 变成 字符串
            if (password.contains(String.valueOf(i))) {//valueOf 返回对象的值
                //10次循环 只要 有一次 进入到这个if中
                //就证明 密码中有数字
                hasNum = true;
            }
//            把 int 类型的 i变成字符串
//            String num = String.valueOf(i);//"0","1","2"....
//            //判断password中是否含num
//            boolean contains = password.contains(num);
//            如果包含 就把hasNum 变成true
//            if (contains) {
//                hasNum = true;
//            }
        }
        if (!hasNum) {
            //如果没有数字
            //即 hasNum=flase
            System.out.println("没有数字");
            return;
        }

        //判断是否包含 大写字母
        //ASCII码(A-65 a-97)
        boolean hasUpperCase = false;
        //true=>有大写字母
        //false=>没有大写字母
        for (char c = 'A'; c <= 'Z'; c++) {
            //把char类型的数据,转换成letter类型的数据(文本)
            String letter = String.valueOf(c);
            if (password.contains(letter)) {
                hasUpperCase = true;
            }
        }
        if (!hasUpperCase) {
            System.out.println("没有大写字母");
            return;
        }
        boolean hasLowerCase = false;
        for (char c = 'a'; c <= 'z'; c++) {
            String letter = String.valueOf(c);
            if (password.contains(letter)) {
                hasLowerCase = true;
            }
        }
        if (!hasLowerCase) {
            System.out.println("没有小写字母");
            return;
        }
        System.out.println("密码合法");
    }
}
